package com.jlect.swebing.ui.client;

/**
 * Base interface for all event in Swebing UI library
 *
 * @author Sergey Kozmin
 * @since 26.11.2007 11:10:00
 */
public interface GEvent extends EventConstants {
    /**
     * @return Initial event. Could return both, browser object or it's wrapper. It depends on renderer implementation.
     */
    public Object getInitial();

    /**
     * @return Event constant, that determines a type of the event. Could be either {@link #MOUSE_EVENT} or {@link #KEY_EVENT}  
     */
    public int getEventType();

    /**
     * @return component that sourced this event
     */
    public GComponent getSource();

    /**
     * @return modifiers for the event. This value is valid for mouse and key events 
     */
    public int getModifiers();
}
